Methods and apparatus for locating small indicia in large images

ABSTRACT

Methods and apparatus for locating small indicia in large images are disclosed herein. An example method includes: identifying an aiming pattern zone that includes a detected or presumed location of an aiming light pattern, wherein an offset between the location and a center of image data varies due to a parallax; determining one or more coordinates of the aiming pattern zone; capturing image data representing an image of an environment appearing within a field of view (FOV) of a handheld scanner including the indicia; encoding the one or more coordinates into a tagline of the image; and providing the image with the tagline to an indicia decoder such that the indicia decoder attempts to decode the indicia from the image data starting in a region of the image data selected based upon the one or more coordinates.

BACKGROUND

With the advent of high-resolution, auto-focus, long-range handheldscanners, the decoding of indicia that are far away from a handheldscanner may not be limited by the sharpness of the indicia in an image,but rather by the ability of an indicia decoder to locate the indicia inthe image. For example, a reduced-height one-dimensional (1D) barcode ora low-density two-dimensional (2D) barcode printed on a large item mayappear extremely small in an image captured at the end of a handheldscanner's focus range because the indicia is represented by only a fewpixels of a large image. The decoding of such small indicia may becomeslow or inconsistent and, under some circumstances, may even fail todecode an indicia.

SUMMARY

To reduce or eliminate some or all of these, or other problems ofconventional indicia decoding, example methods, apparatuses and articlesof manufacture for locating and decoding small indicia in large imagesare disclosed.

In an embodiment, a method for locating an indicia includes: identifyingan aiming pattern zone that includes a detected or presumed location ofan aiming light pattern, wherein an offset between the detected orpresumed location of the aiming light pattern and a center of image datavaries with a distance from a handheld scanner to the indicia due to aparallax; determining one or more coordinates of the aiming patternzone; capturing, with an image sensor of the handheld scanner, imagedata representing an image of an environment appearing within a field ofview (FOV) of the handheld scanner including the indicia; encoding theone or more coordinates of the aiming pattern zone into a tagline of theimage; and providing the image with the tagline to an indicia decodersuch that the indicia decoder attempts to decode the indicia from theimage data starting in a region of the image data selected based uponthe one or more coordinates of the aiming pattern zone.

In a variation of this embodiment, the one or more coordinates of theaiming pattern zone represent a location of a corner or a center of theaiming pattern zone.

In a variation of this embodiment, the method further includesdetermining a focus distance based upon the identified aiming patternzone; and controlling one or more focusing components to focus thehandheld scanner at the focus distance, wherein the image data iscaptured while the handheld scanner is focused at the focus distance.

In a variation of this embodiment, the aiming pattern zone is identifiedby: energizing an aiming light source to provide the aiming lightpattern; capturing, with the image sensor while the aiming light sourceis energized, first image data representing a first partial image ofonly a portion of an environment appearing within the FOV, wherein theaiming light pattern moves within the portion of the environment inresponse to a change in a distance from the handheld scanner to theindicia; dividing the first image data into a first plurality ofsub-images; totaling brightnesses of the first image data in each of thefirst plurality of sub-images to form a first plurality of totalbrightnesses for respective ones of the first plurality of sub-images;de-energizing the aiming light source; capturing, with the image sensorwhile the aiming light source is de-energized, second image datarepresenting a second partial image of only a portion of an environmentappearing within the FOV; dividing the second image data into a secondplurality of sub-images; totaling brightnesses of the additional imagedata in each of the second plurality of sub-images to form a secondplurality of total brightnesses for respective ones of the secondplurality of sub-images; computing a plurality of differences betweenrespective ones of the first plurality of total brightnesses and thesecond plurality of total brightnesses; and identifying a firstsub-image of the first plurality of sub-images corresponding to alargest respective difference of the plurality of differences as theaiming pattern zone.

In a variation of this embodiment, the first sub-image is identified asthe aiming pattern zone when the largest difference satisfies acriteria.

In a variation of this embodiment, the aiming pattern zone is identifiedby: energizing an aiming light source to provide the aiming lightpattern; capturing, with the image sensor while the aiming light sourceis energized, first image data representing a first image of theenvironment appearing within the FOV; applying one or more imageprocessing algorithms to the first image data to detect the aiming lightpattern; and identifying a zone of the first image data including thedetected aiming light pattern as the aiming pattern zone.

In a variation of this embodiment, the aiming pattern zone is identifiedby: determining a focus distance; controlling one or more focusingcomponents to focus the handheld scanner at the focus distance, whereinthe image data is captured while the handheld scanner is focused at thefocus distance; identifying, based upon the focus distance and theparallax, the presumed location of the aiming light pattern; andidentifying the aiming pattern zone to include the presumed location ofthe aiming light pattern.

In a variation of this embodiment, the focus distance is at least one ofdetermined according to a pre-determined focus ramp.

In a variation of this embodiment, when the indicia is not decodable inthe image data, the method further includes: determining a second focusdistance; controlling the one or more focusing components to focus thehandheld scanner at the second focus distance; capturing, with the imagesensor while handheld scanner is focused at the second focus distance,additional image data representing an additional image of theenvironment appearing within the FOV; identifying, based upon the secondfocus distance and the parallax, a second presumed location of theaiming light pattern; identifying a second aiming pattern zone basedupon the second presumed location of the aiming light pattern;determining one or more coordinates of the second aiming pattern zone;encoding the one or more coordinates of the second aiming pattern zoneinto a tagline of the additional image; and providing the additionalimage to the indicia decoder such that the indicia decoder attempts todecode the indicia from the additional image data starting in a regionof the additional image data selected based upon the one or morecoordinates of the second aiming pattern zone.

In another embodiment, a handheld scanner includes an image sensor, anaiming light source, and processor. The processor configured to:identify an aiming pattern zone that includes a detected or presumedlocation of an aiming light pattern, wherein an offset between thedetected or presumed location of the aiming light pattern and a centerof the image data varies with a distance from the handheld scanner to anindicia due to a parallax; determine one or more coordinates of theaiming pattern zone; cause the image sensor to capture image datarepresenting an image of an environment appearing within a field of view(FOV) of the handheld scanner that includes the indicia; encode the oneor more coordinates of the aiming pattern zone into a tagline of theimage; and provide the image with the tagline to an indicia decoderseparate from the handheld scanner, wherein the indicia decoder isconfigured to, in response to receiving the image, attempt to decode theindicia from the image data starting in a region of the image dataselected based upon the one or more coordinates of the aiming patternzone encoded in the tagline.

In a variation of this embodiment, the one or more coordinates of theaiming pattern zone represent a location of a corner or a center of theaiming pattern zone.

In a variation of this embodiment, the handheld scanner includes one ormore focusing components to focus the handheld scanner, and theprocessor is further configured to: determine a focus distance basedupon the identified aiming pattern zone; and control the one or morefocusing components to focus the handheld scanner at the focus distance,wherein the image data is captured while the handheld scanner is focusedat the focus distance.

In a variation of this embodiment, the processor is configured toidentify the aiming pattern zone by: energizing the aiming light sourceto provide the aiming light pattern; causing the image sensor to, whilethe aiming light source is energized, capture first image datarepresenting a first partial image of only a portion of an environmentappearing within the FOV, wherein the aiming light pattern moves withinthe portion of the environment in response to a change in a distancefrom the handheld scanner to the indicia; dividing the first image datainto a first plurality of sub-images; totaling brightnesses of the firstimage data in each of the first plurality of sub-images to form a firstplurality of total brightnesses for respective ones of the firstplurality of sub-images; de-energizing the aiming light source; causingthe image sensor to, while the aiming assembly is de-energized, capturesecond image data representing a second partial image of only a portionof an environment appearing within the FOV; dividing the additionalimage data into a second plurality of sub-images; totaling brightnessesof the additional image data in each of the second plurality ofsub-images to form a second plurality of total brightnesses forrespective ones of the second plurality of sub-images; computing aplurality of differences between respective ones of the first pluralityof total brightnesses and the second plurality of total brightnesses;and identifying a first sub-image of the first plurality of sub-imagescorresponding to a largest respective difference of the plurality ofdifferences as the aiming pattern zone.

In a variation of this embodiment, the processor is configured toidentify the aiming pattern zone by: determining a focus distance;identifying, based upon the focus distance and the parallax, thepresumed location of the aiming light pattern; and identifying theaiming pattern zone to include the presumed location of the aiming lightpattern.

In a variation of this embodiment, the processor is configured toidentify the aiming pattern zone by: energizing an aiming light sourceto provide the aiming light pattern; capturing, with the image sensorwhile the aiming light source is energized, first image datarepresenting a first image of the environment appearing within the FOV;applying one or more image processing algorithms to the first image datato detect the aiming light pattern; and identifying a zone of the firstimage data including the detected aiming light pattern as the aimingpattern zone.

In yet another embodiment, a non-transitory, computer-readable, storagemedium stores computer-readable instructions that, when executed by oneor more processors, cause a handheld scanner to: identify an aimingpattern zone that includes a detected or a presumed location of anaiming light pattern, wherein an offset between the detected or presumedlocation of the aiming light pattern and a center of image data varieswith a distance from the handheld scanner to an indicia due to aparallax; determine one or more coordinates of the aiming pattern zone;cause the image sensor to capture image data representing an image of anenvironment appearing within a field of view (FOV) of the handheldscanner that includes the indicia; encode the one or more coordinates ofthe aiming pattern zone into a tagline of the image; and provide theimage with the tagline to an indicia decoder separate from the handheldscanner to cause the indicia decoder to attempt to decode the indiciafrom the image data starting in a region of the image data selectedbased upon the one or more coordinates of the aiming pattern zone.

In a variation of this embodiment, the one or more coordinates of theaiming pattern zone represent a location of a corner or a center of theaiming pattern zone.

In a variation of this embodiment, the instructions, when executed bythe one or more processors, cause the handheld scanner to: determine afocus distance based upon the identified aiming pattern zone; andcontrol one or more focusing components to focus the handheld scanner atthe focus distance, wherein the image data is captured while thehandheld scanner is focused at the focus distance.

In a variation of this embodiment, the instructions, when executed bythe one or more processors, cause the handheld scanner to identify theaiming pattern zone by: energizing an aiming light source to provide theaiming light pattern; cause the image sensor to, while the aiming lightsource is energized, capture first image data representing a firstpartial image of only a portion of an environment appearing within theFOV, and wherein the aiming light pattern moves within the portion ofthe environment in response to a change in a distance from the handheldscanner to the indicia; dividing the first image data into a firstplurality of sub-images; totaling brightnesses of the first image datain each of the first plurality of sub-images to form a first pluralityof total brightnesses for respective ones of the first plurality ofsub-images; de-energizing the aiming light source; cause the imagesensor to capture, while the aiming assembly is de-energized, secondimage data representing a second partial image of only a portion of anenvironment appearing within the FOV; dividing the second image datainto a second plurality of sub-images; totaling brightnesses of thesecond image data in each of the second plurality of sub-images to forma second plurality of total brightnesses for respective ones of thesecond plurality of sub-images; computing a plurality of differencesbetween respective ones of the first plurality of total brightnesses andthe second plurality of total brightnesses; and identifying a firstsub-image of the first plurality of sub-images corresponding to alargest respective difference of the plurality of differences as theaiming pattern zone.

In a variation of this embodiment, the instructions, when executed bythe one or more processors, cause the handheld scanner to identify theaiming pattern zone by: determining a focus distance; identifying, basedupon the focus distance and the parallax, the presumed location of theaiming light pattern; and identifying the aiming pattern zone to includethe presumed location of the aiming light pattern.

In a variation of this embodiment, the instructions, when executed bythe one or more processors, cause the handheld scanner to identify theaiming pattern zone by: energizing an aiming light source to provide theaiming light pattern; capturing, with the image sensor while the aiminglight source is energized, first image data representing a first imageof the environment appearing within the FOV; applying one or more imageprocessing algorithms to the first image data to detect the aiming lightpattern; and identifying a zone of the first image data including thedetected aiming light pattern as the aiming pattern zone.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying figures, where like reference numerals refer toidentical or functionally similar elements throughout the separateviews, together with the detailed description below, are incorporated inand form part of the specification, and serve to further illustrateembodiments of concepts that include the claimed invention, and explainvarious principles and advantages of those embodiments.

FIG. 1 is a perspective view of an example handheld scanner, inaccordance with embodiments of the disclosure.

FIG. 2 is an example image that may be captured using the examplehandheld scanner of FIG. 1 .

FIG. 3 is another example image that may be captured using the examplehandheld scanner of FIG. 1 .

FIG. 4 is a block diagram of an example logic circuit for implementingthe example handheld scanner of FIG. 1 and/or the example methods and/oroperations described herein.

FIG. 5 is a flowchart representative of an example method, hardwarelogic, machine-readable instructions, or software for locating anddecoding a small indicia in a large image, in accordance withembodiments of the disclosure.

FIG. 6 is a flowchart representative of an example method, hardwarelogic, machine-readable instructions, or software for detecting anaiming light pattern, in accordance with embodiments of the disclosure.

Skilled artisans will appreciate that elements in the figures areillustrated for simplicity and clarity and have not necessarily beendrawn to scale. For example, the dimensions of some of the elements inthe figures may be exaggerated relative to other elements to help toimprove understanding of embodiments of the present invention.

The apparatus and method components have been represented whereappropriate by conventional symbols in the drawings, showing only thosespecific details that are pertinent to understanding the embodiments ofthe present invention so as not to obscure the disclosure with detailsthat will be readily apparent to those of ordinary skill in the arthaving the benefit of the description herein.

DETAILED DESCRIPTION

Reference will now be made in detail to non-limiting examples, some ofwhich are illustrated in the accompanying drawings.

FIG. 1 illustrates an example handheld scanner 100 configured to, amongpossibly other things, scan, locate, and decode indicia, such as a 1Dbarcode, a 2D barcode, a direct product marking (DPM), or the like. Thehandheld scanner 100 may be, for example, a handheld barcode reader.While examples disclosed herein refer to a handheld scanner 100 operatedin a handheld mode, the examples disclosed herein may be used when ahandheld scanner is placed in a cradle and operated in a handsfree mode,with a bioptic scanner, with a slot scanner, etc.

The example handheld scanner 100 includes an example housing 102 inwhich an image sensor 104 is disposed. The image sensor 104 capturesimage data 105 representing an image of an environment in an imagingfield of view (FOV) 106 of the handheld scanner 100 that passes througha front-facing, light-transmissive window or opening 108 on a front side110 of the handheld scanner 100. For example, the image data 105 mayrepresent an image of an object on which an indicia is printed,inscribed, affixed, or the like. For example, a 1D barcode, a 2Dbarcode, a DPM, or the like may be printed, inscribed, or affixed to apackage, a box, a piece of paper, a part, etc. The handheld scanner 100includes an indicia decoder 112 in communication with the image sensor104, and configured to receive the image data 105, and locate and decodeone or more indicia captured in the image data 105. An example indiciadecoder 112 is a barcode decoder.

The example housing 102 of FIG. 1 includes a generally elongated handleor lower handgrip portion 114, and an upper body portion 116 having thefront side 110 at which the window or opening 108 is located. Thecross-sectional dimensions and overall size of the handgrip portion 114are such that the handheld scanner 100 can be conveniently held in auser's hand. The window or opening 108 is configured to face generallyaway from a user when the user has the handheld scanner 100 in ahandheld position. The portions 114 and 116 may be constructed of alightweight, resilient, shock-resistant, self-supporting material, suchas a synthetic plastic material. The housing 102 may be injectionmolded, but can also be vacuum-formed or blow-molded to form a thinhollow shell which bounds an interior space whose volume is sufficientto contain the various components of the handheld scanner 100. Althoughthe housing 102 is illustrated as a portable, point-of-transaction,gun-shaped, handheld housing, any other configuration including ahandsfree configuration could be used.

The handheld scanner 100 includes an example aiming light source 118disposed in the housing 102, and configured to provide an aiming lightpattern, such as an aiming light spot 120. In use, a user orients thehandheld scanner 100 such that the aiming light spot 120 falls incidenton an indicia within the FOV 106, and then actuates a trigger 122 tocause the image sensor 104 to capture image data 105 representing animage that includes the indicia. The operator may depress the trigger122 with one or more fingers. Example indicia include a 1D barcode, a 2Dbarcode, a DPM indicia, or the like. The trigger 122 is mounted in amoving relationship on the handgrip portion 114 in a forward facingregion 124 of the handgrip portion 114.

The aiming light source 118 is positioned physically apart from theimage sensor 104, in the implementation shown, such that the aiminglight spot 120 moves within the FOV 106 as the handheld scanner 100 ismoved towards or away from an indicia 126, due to parallax. As adistance 128 between the handheld scanner 100 and the indicia 126increases from a near distance to a far distance, the aiming light spot120 corresponding moves across the FOV 106 from a first location 130near an edge of the FOV 106 to a second location 132 closer to a centerof the FOV 106. A location of the aiming light spot 120 in the imagedata 105 representing an image of the FOV 106 can be detected and usedto determine the distance 128. The detected location of the aiming lightspot 120 in the image data 105 can be used to determine a focus distanceto the indicia 126 such that the handheld scanner 100 can be focused onthe indicia 126.

When a user, as instructed, orients the handheld scanner 100 such thatthe aiming light spot 120 falls incident on the indicia 126 to bedecoded, and then actuates the trigger 122 to cause the image sensor 104to capture image data 105 representing an image that includes theindicia 126, the detected location of the aiming light spot 120 in theimage data 105 may also be used by the indicia decoder 112 to select aninitial region of the image data 105 in which the indicia decoder 112initially searches for and attempts to decode the indicia 126. By thusdetecting and using the location of the aiming light spot 120 in theimage data 105 to locate the indicia 126, the time it takes the indiciadecoder 112 to locate and decode the indicia 126 can be substantiallyreduced and, under some circumstances, may prevent the indicia decoder112 from failing to locate and decode the indicia 126.

The handheld scanner 100 may detect the location of the aiming lightspot 120 by: (i) capturing first image data 105 representing a firstimage of an environment in the FOV 106 while the aiming light source 118is active or energized; (ii) capturing second image data 105representing a second image of an environment in the FOV 106 while theaiming light source 118 is inactive or de-energized; and (iii) using oneor more differences between the first image data 105 and the secondimage data 105 to detect the aiming light spot 120 and determine thelocation of the aiming light spot 120 in the first image data 105. Insome examples, the first image data 105 and the second image data 105represent an environment in only a portion (e.g., a strip) of the FOV106 in which the aiming light spot 120 moves in response to the distance128 changing to increase image frame rate and/or to reduce the amount ofimage data 105 that has to be processed to detect and locate the indicia126.

The handheld scanner 100 quantizes the focus distance 128 to apre-determined finite set of fixed focus distances to increaseauto-focus speed, in some examples. In such examples, the location ofthe aiming light spot 120 only needs to be detected relative to a finiteset of aiming spot zones. The aiming spot zones correspond to respectiveones of the finite set of fixed focus distances. As the distance 128changes, the aiming light spot 120 moves between aiming spot zones.

FIG. 2 is an example image 205 captured using the example handheldscanner 100 while handheld scanner 100 is a first distance 128 from theindicia 126. In the example shown, the image 205 corresponds to only aportion of the FOV 106 of the handheld scanner 100. The image 205 may bedivided into a plurality of sub-images 210, 211, 212, 213 and 214corresponding to respective ones of a plurality of aiming spot zones inwhich the aiming light spot 120 may be located. The aiming spot zonescorrespond to respective ones of a plurality of fixed focus distances.Because a user, as instructed, orients the handheld scanner 100 suchthat the aiming light spot 120 overlaps the indicia 126, as shown, thelocation of the aiming light spot 120 in image data 105 corresponding tothe image 205 can be used to identify the location of the indicia 126 inthe FOV 106 and, thus, in image data 105 representing an image of alarger portion of the FOV 106.

FIG. 3 is another example image 305 captured using the example handheldscanner 100 while the handheld scanner 100 is a second greater distance128 from the indicia 126. The image 305 may likewise be divided into aplurality of sub-images 310, 311, 312, 313 and 314 corresponding torespective ones of a plurality of aiming spot zones in which the aiminglight spot 120 may be located, which correspond to respective ones of aplurality of fixed focus distances. Because a user, as instructed,orients the handheld scanner 100 such that the aiming light spot 120overlaps the indicia 126, as shown, the location of the aiming lightspot 120 in image data 105 corresponding to the image 305 can again beused to identify the location of the indicia 126 in the FOV 106 and,thus, in image data 105 representing an image of a larger portion of theFOV 106.

The handheld scanner 100 may detect the location of the aiming lightspot 120 by capturing first image data 105 representing a first image ofan environment in the FOV 106 while the aiming light source 118 isactive or energized, and capturing second image data 105 representing asecond image of an environment in the FOV 106 while the aiming lightsource 118 is inactive or de-energized. For example, the first imagedata 105 may represent the image 205 while the aiming light source 118is active or energized, and the second image data 105 may represent theimage 205 while the aiming light source 118 is inactive or de-energized.The first image data 105 may be divided into a first plurality ofsub-images (e.g., the sub-images 210-214) corresponding to a finite setof aiming spot zones, with a first plurality of total brightnessescomputed for respective ones of the first plurality sub-images. Thesecond image data 105 may be likewise divided into a second plurality ofsub-images (e.g., the sub-images 210-214) corresponding to the finiteset of aiming spot zones, with a second plurality of total brightnessescomputed for respective ones of the second plurality sub-images.Differences between the first and second pluralities of totalbrightnesses may be computed and used to detect the sub-image having thelargest difference as the aiming spot zone in which the aiming lightspot 120 is located. The identified aiming spot zone in which the aiminglight spot 120 is detected may be used to: (i) determine a focusdistance to an indicia 126; (ii) control one or more focusing componentsto focus the handheld scanner 100 at the focus distance; (iii) captureimage data 105 representing an image of an environment in the FOV 106while focused at the focus distance; and (iv) select a region of theimage data 105 based on one or more coordinates of the identified aimingspot zone in which to start attempting to decode the indicia 126.

In some examples, the one or more coordinates of the identified aimingspot zone represent a center or a corner of the aiming spot zone. Theone or more coordinates of the identified aiming spot zone may beencoded into a tagline of an image passed to the indicia decoder 112 fordecoding, such that the indicia decoder 112 attempts to decode theindicia 126 in image data 105 of the image starting in a region of theimage data 105 selected based upon the one or more coordinates of theaiming spot zone encoded in the tagline. When the identified aiming spotzone is identified by a first device (e.g., the handheld scanner 100)while the indicia decoder 112 is implemented by a second device (e.g., ahost device) only the image with the encoded tagline needs to be passedto the indicia decoder 112. However, the one or more coordinates couldbe provided to the indicia decoder 112 separate from the image. Anyadditional images used to identify the aiming spot zone (e.g., asdescribed below in connection with FIG. 6 ) are only needed andprocessed by the first device, and need not be passed to the seconddevice implementing the indicia decoder 112. In this way, the amount ofimage data that is passed to the indicia decoder 112 by the handheldscanner 100 can be substantially reduced, and overall responsiveness ofa system including the handheld scanner 100 and the host devicesubstantially increased. In some examples, the dimensions of the regionin which decoding starts are selected based upon an expected barcodesize at a current focus distance, and the location of the region isselected to be centered on the identified aiming spot zone.

In some examples, an aiming light spot is detected and an aiming spotzone is identified when a total brightness difference satisfies apre-determined threshold. When an aiming light spot is not, thus,detected, the handheld scanner 100 may sequentially attempt to decode anindicia using a finite sequence of fixed focus distances. At each focusdistance, the handheld scanner 100: (i) focusses at the current focusdistance; (ii) identifies a presumed aiming light zone in which anaiming light spot is presumed to be located for the current focusdistance; and (iii) selects a region of image data 105 based on one ormore coordinates of the presumed aiming spot zone in which to startattempting to decode the indicia 126.

In some examples, the handheld scanner 100 is calibrated duringmanufacture to accommodate, possibly among other tolerances, a tolerancein the separation between the image sensor 104 and the aiming lightsource 118 and/or a tolerance in an optical alignment of the imagesensor 104 and the aiming light source 118. Such manufacturingtolerances affect the amount of and/or the geometry of parallax betweenthe image sensor 104 and the aiming light source 118. Accordingly, thehandheld scanner 100 stores a calibration table 134 representing thecoordinates of each aiming spot zone or, equivalently, each sub-imagecorresponding to respective ones of a finite plurality of fixed focusdistances. The coordinates of each aiming spot stored in the calibrationtable 134 can be used to define the sub-images into which image data 105is divided for detecting the location of the aiming light spot 120.Conversely, when an aiming light spot 120 is not detected and variousfixed focus distance are tried, the coordinates of a presumed aimingspot for a current focus distance can be determined using thecalibration table 134 based on the parallax geometry between the imagesensor 104 and the aiming light source 118.

FIG. 4 is a block diagram representative of an example logic circuitthat may be used to implement, for example, the handheld scanner 100 ofFIG. 1 . The example logic circuit of FIG. 4 may be configured tocapture images, locate indicia in images, and decode indicia, accordingto embodiments disclosed herein. The logic circuit may be disposed inthe example housing 102 of FIG. 1 .

The example logic circuit of FIG. 4 is a processing platform 400 capableof executing instructions to, for example, implement operations of theexample methods described herein, as may be represented by theflowcharts of the drawings that accompany this description. Otherexample logic circuits capable of, for example, implementing operationsof the example methods described herein include field programmable gatearrays (FPGAs) and application specific integrated circuits (ASICs).

The example processing platform 400 includes a processor 402 such as,for example, one or more microprocessors, controllers, and/or anysuitable type of processor. The processing platform 400 includes memory(e.g., volatile memory, non-volatile memory) 404 accessible by theprocessor 402 (e.g., via a memory controller not shown for clarity ofillustration). The memory 404 may be used to store, among other things,the calibration table 134 of FIG. 1 . The example processor 402interacts with the memory 404 to obtain, for example, machine-readableinstructions stored in the memory 404 corresponding to, for example, theoperations represented by the flowchart(s) of this disclosure.Additionally or alternatively, machine-readable instructionscorresponding to the example operations described herein may be storedon one or more removable media (e.g., a compact disc (CD), a digitalversatile disc (DVD), removable flash memory, etc.) that may be coupledto the processing platform 400 to provide access to the machine-readableinstructions stored thereon. The processor 402 is configured to, amongpossibly other things, execute the machine-readable instructions tocontrol one or more operations of the handheld scanner 100 includingcapturing images, locating indicia in images, and decoding indicia.

The example processing platform 400 includes one or more communicationinterfaces such as, for example, one or more network interfaces 406,and/or one or more input/output (I/O) interfaces 408. The communicationinterface(s) may enable the processing platform 400 to communicate with,for example, another device, system, host system (e.g., an inventorymanagement system, a point-of-sale (POS) station, a point-of-transactionstation, etc.), datastore, database, and/or any other machine.

The example processing platform 400 may include the network interface(s)406 to enable communication with other machines (e.g., an inventorymanagement system, a POS station, a point-of-transaction station, etc.)via, for example, one or more networks. The example network interface(s)406 include any suitable type of communication interface(s) (e.g., wiredand/or wireless interfaces) configured to operate in accordance with anysuitable communication protocol(s). Example network interfaces 406include a TCP/IP interface, a WiFi™ transceiver (e.g., according to theIEEE 802.11x family of standards), an Ethernet transceiver, a cellularnetwork radio, a satellite network radio, or any other suitableinterface based on any other suitable communication protocols orstandards.

The example, processing platform 400 of FIG. 4 may include theinput/output (I/O) interface(s) 408 (e.g., a Bluetooth® interface, anear-field communication (NFC) interface, a universal serial bus (USB)interface, a serial interface, an infrared interface, etc.) to: (1)enable receipt of user input (e.g., from the trigger 122 of FIG. 1 , atouch screen, keyboard, mouse, touch pad, joystick, trackball,microphone, button, etc.); (2) communicate output data (e.g., visualindicators, instructions, data, images, etc.) to the user (e.g., via anoutput device such as a speaker, printer, haptic device, etc.); and/or(3) interact with other components of the handheld scanner 100.

To capture image data 105 representing images of objects and/or indiciaon objects, the example processing platform 400 includes an exampleimaging assembly 412. The imaging assembly 412 includes the image sensor104 under control of, for example, an imaging engine 414 to captureimage data 105 representing image of an environment in which thehandheld scanner 100 is operating that falls within the FOV 106 of theimaging assembly 412. The image sensor 104 includes a plurality ofphotosensitive elements forming a substantially flat surface. While notillustrated for clarity of illustration, the processor 402 may becommunicatively coupled to components of the imaging assembly 412and/or, more generally, the imaging engine 414 via the input/output(I/O) interface(s) 408.

The example imaging assembly 412 includes any number and/or type(s)indicia decoders 112 (e.g., a barcode decoder) to detect and/or decodeindicia to determine the payload of the indicia. In some examples, theindicia decoder 112 is implemented by the processor 402. The indiciadecoder 112, e.g., via the processor 402, conveys the payload of decodedindicia to a host system via a communication interface such as thenetwork interface(s) 406 and/or the I/O interface(s) 408. Alternatively,the indicia decoder 112 could be implemented by the host system separatefrom the handheld scanner 400. When the identified aiming spot zone isidentified by the handheld scanner 400 while the indicia decoder 112 isimplemented by the host system only the image with the encoded taglineneeds to be passed to the indicia decoder 112 of the host system.However, the one or more coordinates could be provided to the indiciadecoder 112 separate from the image. Any additional images used by theimaging engine 414 to identify the aiming spot zone (e.g., as describedbelow in connection with FIG. 6 ), for focusing, for gain or exposuredetermination, etc. are only needed and processed by the handheldscanner 400, and need not be passed to the host system implementing theindicia decoder 112. In this way, the amount of image data that ispassed to the indicia decoder 112 of the host system can besubstantially reduced, and overall responsiveness of a system includingthe handheld scanner 400 and the host system substantially increased.

The example imaging assembly 412 includes an optical assembly 416 havingany number and/or type(s) of imaging optical components 418 to formimages of objects in the FOV 106 on the surface of the image sensor 104.Example imaging optical components 418 include one or more lenses,filters, focus motors, apertures, lens holder, liquid lenses, or anyother optical components.

The example imaging assembly 412 includes any number and/or type(s) offocus components 420 to focus the imaging assembly 412 on an objectand/or indicia. Example focus components include motors, movable lenses,and liquid lenses. In some examples, the focus components 420 arecontrolled by the imaging engine 414. However, the focus components 420may be controlled by the processor 402.

The example imaging assembly 412 includes the example aiming lightsource 118 and any number and/or type(s) of aiming optical components422 to provide a clear illuminated aiming pattern in the FOV 106, suchas the aiming light spot 120. The aiming light source 118 may includeone or more light sources, such as lasers, LEDs, etc. Example aimingoptical components 422 include one or more apertures, one or morediffractive, one or more refractive elements, etc.

The example imaging assembly 412 may include an illumination generator,not shown for clarity of illustration, to illuminate an indicia 126 tobe imaged. The illumination generator may emit light in the FOV 106 to,for example, facilitate autofocusing and/or improve the quality ofimages captured by the image sensor 104.

In the implementation shown, the aiming light source 118 is positionedphysically apart from the image sensor 104 and/or may be angled relativeto the image sensor 104, such that an aiming light pattern (e.g., theaiming light spot 120) generated by the aiming light source 118 and theaiming optical components 422 along an optical axis 424 moves within theFOV 106 as the imaging assembly 412 or, more generally, a handheldscanner including the imaging assembly 412 is moved towards or away froman indicia, due to parallax. For example, an optical axis 426 of theimage sensor 104 and the optical axis 424 of the aiming light source 118may be separated by ten to fifteen millimeters. As a distance betweenthe imaging assembly 412 or, more generally, a handheld scannerincluding the imaging assembly 412 and an indicia increases from a neardistance 428 to a far distance 430, the aiming light patterncorresponding moves across the FOV 106 from a first location 432 near anedge of the FOV 106 to a second location 434 closer to a center of theFOV 106. Thus, a location of the aiming light pattern in the image data105 can be detected and used to determine a focus distance, such that ahandheld scanner including the imaging assembly 412 can be focused onthe indicia.

When a user, as instructed, orients a handheld scanner including theimaging assembly 412 such that an aiming light pattern (e.g., the aiminglight spot 120) falls incident on an indicia to be decoded, and thenactuates the handheld scanner to capture image data 105 representing animage that includes the indicia, the detected location of the aiminglight pattern in the image data 105 is also used by the indicia decoder112 to select an initial region of the image data 105 in which theindicia decoder 112 initially searches for and attempts to decode theindicia. By thus detecting and using the location of the aiming lightpattern in the image data 105 to locate the indicia, the time it takesthe indicia decoder 112 to locate and decode the indicia can besubstantially reduced and, under some circumstances, may prevent theindicia decoder 112 from failing to locate and decode the indicia.

The imaging engine 414 may be an ASIC or FPGA based processor.Alternatively, the imaging engine 414 may be one or more programmablemicroprocessors, controllers, and/or any suitable type of processorcapable of executing machine-readable instructions. In some examples,the processor 402 implements the imaging engine 414.

In the implementation shown, the imaging engine 414 causes the imagesensor 104 to capture first image data 105 containing an aiming lightpattern, and second image data 105 not containing the aiming lightpattern. The imaging engine 414 detects the aiming light pattern in thefirst image data 105 based on differences between the first and secondimage data 105, and identifies an aiming spot zone including the aiminglight pattern, as described above in connection with FIGS. 1-3 . Theimaging engine 414: (i) determines a focus distance based on theidentified aiming spot zone by, for example, querying the calibrationtable 134; (ii) controls the focus components 420 to focus the imagingassembly 412 at the determined focus distance; and (iii) causes theimage sensor 104 to capture third image data 105 while focused at thedetermined focus distance. The imaging engine 414 provides to theprocessor 402 data representing the identified aiming spot zone, and/orone or more coordinates of the identified aiming spot zone. Theprocessor 402 encodes one or more coordinates of the identified aimingspot zone in a tagline of an image 436 represented by the third imagedata 105, and provides the image 436 to the indicia decoder 112 forlocating and decoding the indicia starting in a region of the thirdimage data 105 corresponding to the identified aiming spot zone.

When an aiming light spot is not, thus, detected, the imaging engine 414may sequentially attempt to decode an indicia using images captured fora finite sequence of fixed focus distances. At each focus distance, theimaging engine 414: (i) causes the focus components 420 to focus theimaging assembly 412 at the current focus distance; (ii) causes theimage sensor 104 to capture image data 105 for the current focusdistance; (iii) identifies a presumed aiming light zone in which anaiming light spot is presumed to be located based on the current focusdistance and a parallax geometry between the aiming light source 118 andthe image sensor 104; and (iii) provides to the processor 402 datarepresenting the identified presumed aiming spot zone, and/or one ormore coordinates of the identified presumed aiming spot zone. Thepresumed aiming spot zone for a current focus distance and parallaxgeometry can be determined by querying the calibration table 134 basedon the current focus distance. The processor 402 encodes one or morecoordinates of the identified presumed aiming spot zone in a tagline ofan image 436 represented by the image data 105, and provides the image436 to the indicia decoder 112 for locating and decoding the indiciastarting in a region of the image data 105 corresponding to theidentified presumed aiming spot zone.

FIG. 5 is a flowchart 500 representative of an example method, hardwarelogic, machine-readable instructions, or software for locating anddecoding small indicia in large images, as disclosed herein. Any or allof the blocks of FIG. 5 may be an executable program or portion(s) of anexecutable program embodied in software and/or machine-readableinstructions stored on a non-transitory, machine-readable storage mediumfor execution by one or more processors such as the imaging engine 414and/or the processor 402 of FIG. 4 . Additionally and/or alternatively,any or all of the blocks of FIG. 5 may be implemented by one or morehardware circuits structured to perform the corresponding operation(s)without executing software or instructions.

The flowchart 500 begins at block 502 with the imaging engine 414 and/orthe processor 402 detecting an aiming light pattern appearing in anenvironment within a FOV. The aiming light pattern may be detected byimplementing the example flowchart 600 of FIG. 6 . Additionally and/oralternatively, the imaging engine 414 and/or the processor 402 maydetect the aiming light pattern by applying one or more image processingalgorithms to image data representing one or more images captured of anenvironment appearing within the FOV.

If an aiming light pattern is detected (block 504), the imaging engine414 identifies an aiming spot zone corresponding to the detected aiminglight pattern (block 506), and determines a focus distance based on theidentified aiming spot zone using, for example, the calibration table134 (block 508). The imaging engine 414 and/or the processor 402determines one or more coordinates of the identified aiming spot zone(block 510). In some examples, the one or more coordinates of theidentified aiming spot zone represent a center or a corner of the aimingspot zone. The imaging engine 414 causes the focus components 420 tofocus the handheld scanner at the determined focus distance (block 512),adjusts gain and/or exposure based on, for example, captured image data105 (block 514), and causes the image sensor 104 to capture image data105 representing an image of an environment appearing within the FOV 106for the focus distance, gain, and exposure (block 516).

The imagine engine 414 provides or sends the image data 105 and the oneor more coordinates to the indicia decoder 112 to cause the indiciadecoder 112 to attempt to decode an indicia from the image data 105captured at block 516 starting in a region of the image data 105selected based upon the one or more coordinates of the identified aimingspot zone (block 518). For example, the imaging engine 414 and/or theprocessor 402 encodes one or more coordinates of the identified aimingspot zone in the image data 105 into a tagline of an image 436 includingthe image data 105, and passes the image 436 to the indicia decoder 112to cause the indicia decoder 112 to attempt to decode an indicia fromthe image data 105 starting in a region of the image data 105 selectedbased upon one or more coordinates of the identified aiming spot zone.In some examples, the dimensions of the region in which decoding startsare selected based upon an expected barcode size at a current focusdistance, and the location of the region is selected to be centered onthe identified aiming spot zone. If an indicia is decoded (block 520),control exits from the example flowchart 500.

Returning to block 504, if an aiming light pattern is not detected(block 504), the imaging engine 414 selects a focus distance from aplurality of fixed focus distances (block 522), identifies, based on theselected focus distances and a parallax geometry, a presumed aiminglight pattern location if the aiming light pattern had been detected(block 524). For example, the imaging engine 414 queries the calibrationtable 134 based on the selected focus distance. The imaging engine 414identifies an aiming spot zone corresponding to the identified presumedaiming light pattern location (block 526), and control proceeds to block510 to attempt to decode an indicia from image data 105 captured at theselected focus distance. In some examples, the focus distance isselected based upon a pre-determined ramp of focus distances. In someexamples, the focus distance is selected based upon a contrastmeasurement for captured image data 105.

Returning to block 520, if an indicia is not decoded (block 520),control returns to block 522 to select another focus distance of aplurality of fixed focus distances at which to try to decode an indicia.In some examples, the another focus distance is selected based upon thepre-determined ramp of focus distances.

FIG. 6 is a flowchart 600 representative of an example method, hardwarelogic, machine-readable instructions, or software for detecting anaiming light pattern appearing in an environment within a FOV, asdisclosed herein. The flowchart 600 may be used to detect an aiminglight pattern at, for example, block 508 of FIG. 5 . Any or all of theblocks of FIG. 6 may be an executable program or portion(s) of anexecutable program embodied in software and/or machine-readableinstructions stored on a non-transitory, machine-readable storage mediumfor execution by one or more processors such as the imaging engine 414and/or the processor 402 of FIG. 4 . Additionally and/or alternatively,any or all of the blocks of FIG. 6 may be implemented by one or morehardware circuits structured to perform the corresponding operation(s)without executing software or instructions.

The flowchart 600 begins at block 602 with the imaging engine 414activating or energizing the aiming light source 118. The imaging engine414 causes the image sensor 104 to capture first image data 105representing a first image of an environment appearing within a FOV of ahandheld scanner including the imaging engine 414 (block 604). In someexamples, the first image data 105 represents a first partial image ofonly a portion of an environment appearing within the FOV, wherein theaiming light pattern moves within only the portion of the environment inresponse to a change in a distance from the handheld scanner to theindicia. The imaging engine 414 divides the first image data 105 into afirst plurality of sub-images (block 606), and computes a firstplurality of total brightnesses for respective ones of the firstplurality of sub-images by summing together brightnesses of the firstimage data 105 for each sub-image (block 608).

The imaging engine 414 deactivates or de-energizes the aiming lightsource 118 (block 610), and causes the image sensor 104 to capturesecond image data 105 representing an image of an environment in the FOV106 while the aiming light source 118 is inactive or de-energized (block612). In some examples, the second image data 105 represents a secondpartial image of only the portion of an environment appearing within theFOV. The imaging engine 414 divides the second image data 105 into asecond plurality of sub-images (block 614). The imaging engine 414computes a second plurality of total brightnesses for respective ones ofthe second plurality of sub-images by summing together brightnesses ofthe second image data 105 for each sub-image (block 616).

The imaging engine 414 computes a plurality of differences betweenrespective ones of the first plurality of total brightnesses and thesecond plurality of total brightnesses (block 618). If the largestdifference of the plurality of differences satisfies a criteria (e.g.,is greater than a threshold) (block 620), an aiming light pattern isdetected (block 622), the location of sub-image having largestdifference is identified as the detected location of the aiming lightpattern (block 624), and control exits from the example flowchart 600.

Otherwise, if the largest difference of the plurality of differencesdoes not satisfy the criteria (block 620), an aiming light pattern isnot detected (block 626), and control exits from the example flowchart600.

When only partial first and second images are used to detect the aiminglight pattern, the partial first and second images can be captured at ahigher frame rate than full images such that relative positions of ahandheld scanner and an indicia to be decoded change very little betweenthe two partial images. In this way, the accuracy of the detectedlocation of the aiming light pattern is increased, and the likelihoodthat an indicia decoder can locate and decode the indicia based on thedetected location of the aiming light pattern is also increased.

The above description refers to a block diagram of the accompanyingdrawings. Alternative implementations of the example represented by theblock diagram includes one or more additional or alternative elements,processes and/or devices. Additionally or alternatively, one or more ofthe example blocks of the diagram may be combined, divided, re-arrangedor omitted. Components represented by the blocks of the diagram areimplemented by hardware, software, firmware, and/or any combination ofhardware, software and/or firmware. In some examples, at least one ofthe components represented by the blocks is implemented by a logiccircuit. As used herein, the term “logic circuit” is expressly definedas a physical device including at least one hardware componentconfigured (e.g., via operation in accordance with a predeterminedconfiguration and/or via execution of stored machine-readableinstructions) to control one or more machines and/or perform operationsof one or more machines. Examples of a logic circuit include one or moreprocessors, one or more coprocessors, one or more microprocessors, oneor more controllers, one or more digital signal processors (DSPs), oneor more application specific integrated circuits (ASICs), one or morefield programmable gate arrays (FPGAs), one or more microcontrollerunits (MCUs), one or more hardware accelerators, one or morespecial-purpose computer chips, and one or more system-on-a-chip (SoC)devices. Some example logic circuits, such as ASICs or FPGAs, arespecifically configured hardware for performing operations (e.g., one ormore of the operations described herein and represented by theflowcharts of this disclosure, if such are present). Some example logiccircuits are hardware that executes machine-readable instructions toperform operations (e.g., one or more of the operations described hereinand represented by the flowcharts of this disclosure, if such arepresent). Some example logic circuits include a combination ofspecifically configured hardware and hardware that executesmachine-readable instructions. The above description refers to variousoperations described herein and flowcharts that may be appended heretoto illustrate the flow of those operations. Any such flowcharts arerepresentative of example methods disclosed herein. In some examples,the methods represented by the flowcharts implement the apparatusrepresented by the block diagrams. Alternative implementations ofexample methods disclosed herein may include additional or alternativeoperations. Further, operations of alternative implementations of themethods disclosed herein may combined, divided, re-arranged or omitted.In some examples, the operations described herein are implemented bymachine-readable instructions (e.g., software and/or firmware) stored ona medium (e.g., a tangible machine-readable medium) for execution by oneor more logic circuits (e.g., processor(s)). In some examples, theoperations described herein are implemented by one or moreconfigurations of one or more specifically designed logic circuits(e.g., ASIC(s)). In some examples the operations described herein areimplemented by a combination of specifically designed logic circuit(s)and machine-readable instructions stored on a medium (e.g., a tangiblemachine-readable medium) for execution by logic circuit(s).

As used herein, each of the terms “tangible machine-readable medium,”“non-transitory machine-readable medium” and “machine-readable storagedevice” is expressly defined as a storage medium (e.g., a platter of ahard disk drive, a digital versatile disc, a compact disc, flash memory,read-only memory, random-access memory, etc.) on which machine-readableinstructions (e.g., program code in the form of, for example, softwareand/or firmware) are stored for any suitable duration of time (e.g.,permanently, for an extended period of time (e.g., while a programassociated with the machine-readable instructions is executing), and/ora short period of time (e.g., while the machine-readable instructionsare cached and/or during a buffering process)). Further, as used herein,each of the terms “tangible machine-readable medium,” “non-transitorymachine-readable medium” and “machine-readable storage device” isexpressly defined to exclude propagating signals. That is, as used inany claim of this patent, none of the terms “tangible machine-readablemedium,” “non-transitory machine-readable medium,” and “machine-readablestorage device” can be read to be implemented by a propagating signal.

In the foregoing specification, specific embodiments have beendescribed. However, one of ordinary skill in the art appreciates thatvarious modifications and changes can be made without departing from thescope of the invention as set forth in the claims below. Accordingly,the specification and figures are to be regarded in an illustrativerather than a restrictive sense, and all such modifications are intendedto be included within the scope of present teachings. Additionally, thedescribed embodiments/examples/implementations should not be interpretedas mutually exclusive, and should instead be understood as potentiallycombinable if such combinations are permissive in any way. In otherwords, any feature disclosed in any of the aforementionedembodiments/examples/implementations may be included in any of the otheraforementioned embodiments/examples/implementations.

The benefits, advantages, solutions to problems, and any element(s) thatmay cause any benefit, advantage, or solution to occur or become morepronounced are not to be construed as a critical, required, or essentialfeatures or elements of any or all the claims. The claimed invention isdefined solely by the appended claims including any amendments madeduring the pendency of this application and all equivalents of thoseclaims as issued.

Moreover in this document, relational terms such as first and second,top and bottom, and the like may be used solely to distinguish oneentity or action from another entity or action without necessarilyrequiring or implying any actual such relationship or order between suchentities or actions. The terms “comprises,” “comprising,” “has”,“having,” “includes”, “including,” “contains”, “containing” or any othervariation thereof, are intended to cover a non-exclusive inclusion, suchthat a process, method, article, or apparatus that comprises, has,includes, contains a list of elements does not include only thoseelements but may include other elements not expressly listed or inherentto such process, method, article, or apparatus. An element proceeded by“comprises . . . a”, “has . . . a”, “includes . . . a”, “contains . . .a” does not, without more constraints, preclude the existence ofadditional identical elements in the process, method, article, orapparatus that comprises, has, includes, contains the element. The terms“a” and “an” are defined as one or more unless explicitly statedotherwise herein. The terms “substantially”, “essentially”,“approximately”, “about” or any other version thereof, are defined asbeing close to as understood by one of ordinary skill in the art, and inone non-limiting embodiment the term is defined to be within 10%, inanother embodiment within 4%, in another embodiment within 1% and inanother embodiment within 0.5%. The term “coupled” as used herein isdefined as connected, although not necessarily directly and notnecessarily mechanically. A device or structure that is “configured” ina certain way is configured in at least that way, but may also beconfigured in ways that are not listed.

Further, unless expressly stated to the contrary, “or” refers to aninclusive or and not to an exclusive or. For example, “A, B or C” refersto any combination or subset of A, B, C such as (1) A alone, (2) Balone, (3) C alone, (4) A with B, (5) A with C, (6) B with C, and (7) Awith B and with C. As used herein, the phrase “at least one of A and B”is intended to refer to any combination or subset of A and B such as (1)at least one A, (2) at least one B, and (3) at least one A and at leastone B. Similarly, the phrase “at least one of A or B” is intended torefer to any combination or subset of A and B such as (1) at least oneA, (2) at least one B, and (3) at least one A and at least one B

The Abstract of the Disclosure is provided to allow the reader toquickly ascertain the nature of the technical disclosure. It issubmitted with the understanding that it will not be used to interpretor limit the scope or meaning of the claims. In addition, in theforegoing Detailed Description, it can be seen that various features aregrouped together in various embodiments for the purpose of streamliningthe disclosure. This method of disclosure is not to be interpreted asreflecting an intention that the claimed embodiments require morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive subject matter may lie in less thanall features of a single disclosed embodiment. Thus, the followingclaims are hereby incorporated into the Detailed Description, with eachclaim standing on its own as a separately claimed subject matter.

The claims are:
 1. A method for locating an indicia, the methodcomprising: identifying an aiming pattern zone that includes a detectedor presumed location of an aiming light pattern, wherein an offsetbetween the detected or presumed location of the aiming light patternand a center of image data varies with a distance from a handheldscanner to the indicia due to a parallax; determining one or morecoordinates of the aiming pattern zone; capturing, with an image sensorof the handheld scanner, image data representing an image of anenvironment appearing within a field of view (FOV) of the handheldscanner including the indicia; encoding the one or more coordinates ofthe aiming pattern zone into a tagline of the image; and providing theimage with the tagline to an indicia decoder such that the indiciadecoder attempts to decode the indicia from the image data starting in aregion of the image data selected based upon the one or more coordinatesof the aiming pattern zone.
 2. The method of claim 1, wherein the one ormore coordinates of the aiming pattern zone represent a location of acorner or a center of the aiming pattern zone.
 3. The method of claim 1,further comprising: determining a focus distance based upon theidentified aiming pattern zone; and controlling one or more focusingcomponents to focus the handheld scanner at the focus distance, whereinthe image data is captured while the handheld scanner is focused at thefocus distance.
 4. The method of claim 1, wherein identifying the aimingpattern zone includes: energizing an aiming light source to provide theaiming light pattern; capturing, with the image sensor while the aiminglight source is energized, first image data representing a first partialimage of only a portion of an environment appearing within the FOV,wherein the aiming light pattern moves within the portion of theenvironment in response to a change in a distance from the handheldscanner to the indicia; dividing the first image data into a firstplurality of sub-images; totaling brightnesses of the first image datain each of the first plurality of sub-images to form a first pluralityof total brightnesses for respective ones of the first plurality ofsub-images; de-energizing the aiming light source; capturing, with theimage sensor while the aiming light source is de-energized, second imagedata representing a second partial image of only a portion of anenvironment appearing within the FOV; dividing the second image datainto a second plurality of sub-images; totaling brightnesses of theadditional image data in each of the second plurality of sub-images toform a second plurality of total brightnesses for respective ones of thesecond plurality of sub-images; computing a plurality of differencesbetween respective ones of the first plurality of total brightnesses andthe second plurality of total brightnesses; and identifying a firstsub-image of the first plurality of sub-images corresponding to alargest respective difference of the plurality of differences as theaiming pattern zone.
 5. The method of claim 4, wherein the firstsub-image is identified as the aiming pattern zone when the largestdifference satisfies a criteria.
 6. The method of claim 1, whereinidentifying the aiming pattern zone includes: energizing an aiming lightsource to provide the aiming light pattern; capturing, with the imagesensor while the aiming light source is energized, first image datarepresenting a first image of the environment appearing within the FOV;applying one or more image processing algorithms to the first image datato detect the aiming light pattern; and identifying a zone of the firstimage data including the detected aiming light pattern as the aimingpattern zone.
 7. The method of claim 1, wherein identifying the aimingpattern zone includes: determining a focus distance; controlling one ormore focusing components to focus the handheld scanner at the focusdistance, wherein the image data is captured while the handheld scanneris focused at the focus distance; identifying, based upon the focusdistance and the parallax, the presumed location of the aiming lightpattern; and identifying the aiming pattern zone to include the presumedlocation of the aiming light pattern.
 8. The method of claim 7, whereinthe focus distance is at least one of determined according to apre-determined focus ramp.
 9. The method of claim 7, wherein, when theindicia is not decodable in the image data: determining a second focusdistance; controlling the one or more focusing components to focus thehandheld scanner at the second focus distance; capturing, with the imagesensor while handheld scanner is focused at the second focus distance,additional image data representing an additional image of theenvironment appearing within the FOV; identifying, based upon the secondfocus distance and the parallax, a second presumed location of theaiming light pattern; identifying a second aiming pattern zone basedupon the second presumed location of the aiming light pattern;determining one or more coordinates of the second aiming pattern zone;encoding the one or more coordinates of the second aiming pattern zoneinto a tagline of the additional image; and providing the additionalimage to the indicia decoder such that the indicia decoder attempts todecode the indicia from the additional image data starting in a regionof the additional image data selected based upon the one or morecoordinates of the second aiming pattern zone.
 10. A handheld scannercomprising: an image sensor; an aiming light source; and a processorconfigured to: identify an aiming pattern zone that includes a detectedor presumed location of an aiming light pattern, wherein an offsetbetween the detected or presumed location of the aiming light patternand a center of the image data varies with a distance from the handheldscanner to an indicia due to a parallax; determine one or morecoordinates of the aiming pattern zone; cause the image sensor tocapture image data representing an image of an environment appearingwithin a field of view (FOV) of the handheld scanner that includes theindicia; encode the one or more coordinates of the aiming pattern zoneinto a tagline of the image; and provide the image with the tagline toan indicia decoder separate from the handheld scanner, wherein theindicia decoder is configured to, in response to receiving the image,attempt to decode the indicia from the image data starting in a regionof the image data selected based upon the one or more coordinates of theaiming pattern zone encoded in the tagline.
 11. The handheld scanner ofclaim 10, wherein the one or more coordinates of the aiming pattern zonerepresent a location of a corner or a center of the aiming pattern zone.12. The handheld scanner of claim 10, further comprising one or morefocusing component to focus the handheld scanner, wherein the processoris configured to: determine a focus distance based upon the identifiedaiming pattern zone; and control the one or more focusing components tofocus the handheld scanner at the focus distance, wherein the image datais captured while the handheld scanner is focused at the focus distance.13. The handheld scanner of claim 10, wherein the processor isconfigured to identify the aiming pattern zone by: energizing the aiminglight source to provide the aiming light pattern; causing the imagesensor to, while the aiming light source is energized, capture firstimage data representing a first partial image of only a portion of anenvironment appearing within the FOV, wherein the aiming light patternmoves within the portion of the environment in response to a change in adistance from the handheld scanner to the indicia; dividing the firstimage data into a first plurality of sub-images; totaling brightnessesof the first image data in each of the first plurality of sub-images toform a first plurality of total brightnesses for respective ones of thefirst plurality of sub-images; de-energizing the aiming light source;causing the image sensor to, while the aiming assembly is de-energized,capture second image data representing a second partial image of only aportion of an environment appearing within the FOV; dividing theadditional image data into a second plurality of sub-images; totalingbrightnesses of the additional image data in each of the secondplurality of sub-images to form a second plurality of total brightnessesfor respective ones of the second plurality of sub-images; computing aplurality of differences between respective ones of the first pluralityof total brightnesses and the second plurality of total brightnesses;and identifying a first sub-image of the first plurality of sub-imagescorresponding to a largest respective difference of the plurality ofdifferences as the aiming pattern zone.
 14. The handheld scanner ofclaim 10, wherein the processor is configured to identify the aimingpattern zone by: determining a focus distance; identifying, based uponthe focus distance and the parallax, the presumed location of the aiminglight pattern; and identifying the aiming pattern zone to include thepresumed location of the aiming light pattern.
 15. The handheld scannerof claim 10, wherein the processor is configured to identify the aimingpattern zone by: energizing an aiming light source to provide the aiminglight pattern; capturing, with the image sensor while the aiming lightsource is energized, first image data representing a first image of theenvironment appearing within the FOV; applying one or more imageprocessing algorithms to the first image data to detect the aiming lightpattern; and identifying a zone of the first image data including thedetected aiming light pattern as the aiming pattern zone.
 16. Anon-transitory, computer-readable, storage medium storingcomputer-readable instructions that, when executed by one or moreprocessors, cause a handheld scanner to: identify an aiming pattern zonethat includes a detected or a presumed location of an aiming lightpattern, wherein an offset between the detected or presumed location ofthe aiming light pattern and a center of image data varies with adistance from the handheld scanner to an indicia due to a parallax;determine one or more coordinates of the aiming pattern zone; cause theimage sensor to capture image data representing an image of anenvironment appearing within a field of view (FOV) of the handheldscanner that includes the indicia; encode the one or more coordinates ofthe aiming pattern zone into a tagline of the image; and provide theimage with the tagline to an indicia decoder separate from the handheldscanner to cause the indicia decoder to attempt to decode the indiciafrom the image data starting in a region of the image data selectedbased upon the one or more coordinates of the aiming pattern zone. 17.The storage medium of claim 16, wherein the one or more coordinates ofthe aiming pattern zone represent a location of a corner or a center ofthe aiming pattern zone.
 18. The storage medium of claim 16, wherein theinstructions, when executed by the one or more processors, cause thehandheld scanner to: determine a focus distance based upon theidentified aiming pattern zone; and control one or more focusingcomponents to focus the handheld scanner at the focus distance, whereinthe image data is captured while the handheld scanner is focused at thefocus distance.
 19. The storage medium of claim 16, wherein theinstructions, when executed by the one or more processors, cause thehandheld scanner to identify the aiming pattern zone by: energizing anaiming light source to provide the aiming light pattern; cause the imagesensor to, while the aiming light source is energized, capture firstimage data representing a first partial image of only a portion of anenvironment appearing within the FOV, and wherein the aiming lightpattern moves within the portion of the environment in response to achange in a distance from the handheld scanner to the indicia; dividingthe first image data into a first plurality of sub-images; totalingbrightnesses of the first image data in each of the first plurality ofsub-images to form a first plurality of total brightnesses forrespective ones of the first plurality of sub-images; de-energizing theaiming light source; cause the image sensor to capture, while the aimingassembly is de-energized, second image data representing a secondpartial image of only a portion of an environment appearing within theFOV; dividing the second image data into a second plurality ofsub-images; totaling brightnesses of the second image data in each ofthe second plurality of sub-images to form a second plurality of totalbrightnesses for respective ones of the second plurality of sub-images;computing a plurality of differences between respective ones of thefirst plurality of total brightnesses and the second plurality of totalbrightnesses; and identifying a first sub-image of the first pluralityof sub-images corresponding to a largest respective difference of theplurality of differences as the aiming pattern zone.
 20. The storagemedium of claim 16, wherein the instructions, when executed by the oneor more processors, cause the handheld scanner to identify the aimingpattern zone by: determining a focus distance; identifying, based uponthe focus distance and the parallax, the presumed location of the aiminglight pattern; and identifying the aiming pattern zone to include thepresumed location of the aiming light pattern.
 21. The storage medium ofclaim 16, wherein the instructions, when executed by the one or moreprocessors, cause the handheld scanner to identify the aiming patternzone by: energizing an aiming light source to provide the aiming lightpattern; capturing, with the image sensor while the aiming light sourceis energized, first image data representing a first image of theenvironment appearing within the FOV; applying one or more imageprocessing algorithms to the first image data to detect the aiming lightpattern; and identifying a zone of the first image data including thedetected aiming light pattern as the aiming pattern zone.